#include "str_unit.h"
#include "internal.h"
#include "unit_io.h"

//Messages
#define _DEPENDENT_TESTING "Testing relies on %s function in student program\n"


////////Actual testing  routines prototypes
//variant 1
int _test_1_selectWords(FILE *istream, FILE *ostream);
int _test_1_findWord(FILE *istream, FILE *ostream);
//1mod6
int _test_530ec_textToStr(FILE *istream, FILE *ostream);
//1mod7
int	_test_59053_selectPhrases(FILE *istream, FILE *ostream);
//1mod8
int	_test_454fb_cutString(FILE *istream, FILE *ostream);

////variant 2
int _test_2_textToWords(FILE *istream, FILE *ostream);
int _test_2_strToWords(FILE *istream, FILE *ostream);
//2mod6
int _test_b4974_getWord(FILE *istream, FILE *ostream);

////variant 3
int _test_3_crossStrings(FILE *istream, FILE *ostream);
int _test_3_strToWords(FILE *istream, FILE *ostream);
//3mod6
int _test_93be5_countWords(FILE *istream, FILE *ostream);
//3mod7
int	_test_c1d1b_uniteStrings(FILE *istream, FILE *ostream);
//3mod8
int	_test_7e880_uniqueStrings(FILE *istream, FILE *ostream);

////variant 4
int _test_4_delCharacters(FILE *istream, FILE *ostream);
int _test_4_cutString(FILE *istream, FILE *ostream);
//4mod6
int _test_6ec83_delFromText(FILE *istream, FILE *ostream);
//4mod7
int	_test_1f2a9_delSubstring(FILE *istream, FILE *ostream);
//4mod8
int	_test_97af7_delWord(FILE *istream, FILE *ostream);

////variant 5
int	_test_5_textToWords(FILE *istream, FILE *ostream);
int _test_5_textLength(FILE *istream, FILE *ostream);
//5mod6
int _test_597e4_strToWords(FILE *istream, FILE *ostream);
//5mod7
int	_test_a46a5_minimum(FILE *istream, FILE *ostream);
//5mod8
int	_test_f579b_isEndOfSentence(FILE *istream, FILE *ostream);

////variant 6
int _test_6_getNumbers(FILE *istream, FILE *ostream);
int _test_6_findInteger(FILE *istream, FILE *ostream);
//6mod6
int _test_beb12_getNumbersFromText(FILE *istream, FILE *ostream);
//6mod7&8
int _test_8f7d2_getNumbers(FILE *istream, FILE *ostream);
int _test_8f7d2_findFloat(FILE *istream, FILE *ostream);

////variant 7
int _test_7_sortByStringLength(FILE *istream, FILE *ostream);
//7mod6
//using _test_2_strToWords
//7mod7
int _test_3643e_sortByStringLength(FILE *istream, FILE *ostream);
//7mod8
int _test_ae399_compareString(FILE *istream, FILE *ostream);

////variant 8
int _test_8_insertString(FILE *istream, FILE *ostream);
int _test_8_findCharInText(FILE *istream, FILE *ostream);
//8mod6
int _test_aaaa9_insertStringBefore(FILE *istream, FILE *ostream);
//8mod7
int _test_622d9_findSubstrInText(FILE *istream, FILE *ostream);
//8mod8
int _test_1191a_insertStrToText(FILE *istream, FILE *ostream);

////variant 9
int _test_9_findPairBrackets(FILE *istream, FILE *ostream);
//9mod6
int _test_1bec2_cutText(FILE *istream, FILE *ostream);
//9mod7
int _test_7a70f_countInvalidBrackets(FILE *istream, FILE *ostream);
//9mod 8 & 9
int _test_c46f2_cutBracketsFromText(FILE *istream, FILE *ostream);

////variant 10
int _test_10_markWords(FILE *istream, FILE *ostream);
int _test_10_searchWord(FILE *istream, FILE *ostream);
int _test_10_slideString(FILE *istream, FILE *ostream);
//10mod6
int _test_25b24_markWordsInText(FILE *istream, FILE *ostream);
//10mod7
int _test_efc2b_duplicateWords(FILE *istream, FILE *ostream);
//10mod8
int _test_e18c0_entryCount(FILE *istream, FILE *ostream);

////variant 11
int _test_11_deleteBlanks(FILE *istream, FILE *ostream);
//11mod6 & 8
int _test_eb290_deleteBlanksFromText(FILE *istream, FILE *ostream);
//11mod7
int _test_3ec7d_deleteDelimiters(FILE *istream, FILE *ostream);
//11mod8
int _test_b37fd_findNextQuote(FILE *istream, FILE *ostream);

////variant 12
int _test_12_markWords(FILE *istream, FILE *ostream);
//12mod6
int _test_2ae70_compositionStrings(FILE *istream, FILE *ostream);
//12mod7
int _test_62a5d_compareStringList(FILE *istream, FILE *ostream);
//12mod8
int _test_05967_strToWords(FILE *istream, FILE *ostream);

////variant 13
int _test_13_searchString(FILE *istream, FILE *ostream);
int _test_13_slideStringList(FILE *istream, FILE *ostream);
//13mod6
int _test_02b98_insertToStringList(FILE *istream, FILE *ostream);
//13mod7
int _test_d5d5b_getRating(FILE *istream, FILE *ostream);
//13mod8
int _test_69305_packStringList(FILE *istream, FILE *ostream);

////variant 14
int _test_14_countWordsByLetter(FILE *istream, FILE *ostream);
//14mod6
int _test_a120f_startWords(FILE *istream, FILE *ostream);
//14mod7
int _test_2ffe4_startWords(FILE *istream, FILE *ostream);
//14mod8
int _test_0523c_lettersString(FILE *istream, FILE *ostream);

////variant 15
int _test_15_strToWords(FILE *istream, FILE *ostream);
int _test_15_compareByContents(FILE *istream, FILE *ostream);
//15mod6
int _test_f8595_equalWords(FILE *istream, FILE *ostream);
//15mod78
int _test_a77a5_differenceByContents(FILE *istream, FILE *ostream);

//variant 16
int _test_16_strToWords(FILE *istream, FILE *ostream);
int _test_16_selectWords(FILE *istream, FILE *ostream);
//16mod6&7
int _test_16mods67_findWordFromText(FILE *istream, FILE *ostream);
//16mod8
int _test_142d2_findFIO(FILE *istream, FILE *ostream);

//variant 17
int _test_17_reverseWords(FILE *istream, FILE *ostream);
//17mod6
int _test_a7490_reverseWordsInText(FILE *istream, FILE *ostream);
//17mod7
int _test_f3c74_reversePhrase(FILE *istream, FILE *ostream);
//17mod8
int _test_05789_reversePhraseInText(FILE *istream, FILE *ostream);

//variant 18
int _test_18_deleteWords(FILE *istream, FILE *ostream);
//18mod6
int _test_3eac1_deleteWordsFromText(FILE *istream, FILE *ostream);
//18mod7
int _test_1af88_deleteString(FILE *istream, FILE *ostream);
//18mod8
int _test_50b16_deleteDuplicateWordsFromText(FILE *istream, FILE *ostream);

//variant 19
int _test_19_toMorseCode(FILE *istream, FILE *ostream);
int _test_19_strToMorse(FILE *istream, FILE *ostream);
//19mod6
int _test_f3342_translateText(FILE *istream, FILE *ostream);
//19mod7
int _test_fc6a9_translateSubstrings(FILE *istream, FILE *ostream);
//19mod8
int _test_fa4a6_translateFromMorseCode(FILE *istream, FILE *ostream);

//variant 20
int _test_20_searchPhrase(FILE *istream, FILE *ostream);
//20mod6
int _test_6a4eb_searchWordInText(FILE *istream, FILE *ostream);
//20mod7
int _test_024d7_searchWordInText(FILE *istream, FILE *ostream);
//20mod8
int _test_04ca43_searchPhrase(FILE *istream, FILE *ostream);

//variant 21
int _test_21_replaceWords(FILE *istream, FILE *ostream);
//21mod6
int _test_d2e14_replaceWordsInText(FILE *istream, FILE *ostream);
//21mod8
int _test_e3a83_insertStringToText(FILE *istream, FILE *ostream);

//variant 22
int _test_22_stringToSubstrings(FILE *istream, FILE *ostream);
int _test_22_countRepeats(FILE *istream, FILE *ostream);
//22mod6
int _test_235bc_iterativeWordCount(FILE *istream, FILE *ostream);
//22mod7
int _test_a4eb3_iterativeWordLocation(FILE *istream, FILE *ostream);
//22mod8
int _test_fcb68_sentenceLocation(FILE *istream, FILE *ostream);

//variant 23
int _test_23_wordMeaning(FILE *istream, FILE *ostream);
int _test_23_strToWords(FILE *istream, FILE *ostream);
//23mod6
int _test_b40a3_distanceBetweenWords(FILE *istream, FILE *ostream);
//23mod7
int _test_24cb3_getWords(FILE *istream, FILE *ostream);
//23mod8
int _test_63e44_separateToSentences(FILE *istream, FILE *ostream);

//variant 24
int _test_24_stringInText(FILE *istream, FILE *ostream);
//24mod6
int _test_65b6e_stringInTextAll(FILE *istream, FILE *ostream);
//24mod7
int _test_84c95_delRegionOfText(FILE *istream, FILE *ostream);
//24mod8&9
int _test_8eb83_appendString(FILE *istream, FILE *ostream);

//variant 25
int _test_25_parseSynonym(FILE *istream, FILE *ostream);
int _test_25_findSynonym(FILE *istream, FILE *ostream);
//25mod6
int _test_20579_findSynonymAll(FILE *istream, FILE *ostream);
//25mod7
int _test_d9542_synonymString(FILE *istream, FILE *ostream);
//25mod8
int _test_2ae89_addSynonyms(FILE *istream, FILE *ostream);

//variant 26
int _test_26_findString(FILE *istream, FILE *ostream);
//26mod6
int _test_54ded_spellString(FILE *istream, FILE *ostream);
//26mod7
int _test_e82bb_checkSpelling(FILE *istream, FILE *ostream);
//26mod8
int _test_0a49d_fixSpelling(FILE *istream, FILE *ostream);

//variant 27
int _test_27_findWord(FILE *istream, FILE *ostream);
int _test_27_divideWord(FILE *istream, FILE *ostream);
//27mod6
int _test_27cd9_divisionOfWordInDictionary(FILE *istream, FILE *ostream);
//27mod7&8
int _test_bb159_divideString(FILE *istream, FILE *ostream);

//variant 28
//28mod6
int _test_ce079_insertFirstLineIndent(FILE *istream, FILE *ostream);
//28mod7
int _test_d26a2_insertEmptyString(FILE *istream, FILE *ostream);
//28mod8
int _test_df735_insertString(FILE *istream, FILE *ostream);

//variant 29
int _test_29_distanceBetweenWords(FILE *istream, FILE *ostream);
//29mod6
int _test_10c6c_distanceBetweenWordsValue(FILE *istream, FILE *ostream);
//29mod7
int _test_5ebf2_fillLettersAndNumbers(FILE *istream, FILE *ostream);
//29mod8
int _test_64dd0_distanceBeetwenPhrases(FILE *istream, FILE *ostream);

//variant 30
int _test_30_censorWords(FILE *istream, FILE *ostream);
//30mod6, 7 & 8
int _test_5d510_censorText(FILE *istream, FILE *ostream);